﻿using CavinatorService.DAO;
using CavinatorService.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CavinatorService.Business
{
    public class QuestionService
    {
        #region Atributos

        private QuestionMapper mapper;

        #endregion

        #region Construtor

        public QuestionService()
        {
            mapper = new QuestionMapper();
        }

        #endregion

        #region Métodos

        /// <summary>
        /// Atualiza uma pergunta
        /// </summary>
        /// <param name="registro">Dados da pergunta</param>
        public void Atualizar(Question registro)
        {
            mapper.Atualizar(registro);
        }

        /// <summary>
        /// Insere uma pergunta
        /// </summary>
        /// <param name="registro">Dados da pergunta</param>
        public void Inserir(Question registro)
        {
            mapper.Inserir(registro);
        }

        /// <summary>
        /// Exclui uma pergunta
        /// </summary>
        /// <param name="id">Id da pergunta</param>
        public void Excluir(int id)
        {
            mapper.Excluir(id);
        }

        // <summary>
        /// Lista as perguntas
        /// </summary>
        /// <returns>Lista de perguntas</returns>
        public List<Question> Listar()
        {
            return mapper.Listar();
        }

        public List<Question> PerguntasAResponder(List<Question> respondidas)
        {
            var questions = Listar();
            return questions.Where(q => !respondidas.Contains(q)).ToList();
        }

        #endregion
    }
}
